終於寫完了!
這個系列文章大致上可以分成四個階段:
這個階段主要是讓大家可以迅速地建立出一個基本的 Discord BOT。
接著,開始介紹如何去做出 Discord BOT 的各種功能。由於功能很多,寫法也不只一種,所以這邊我選擇用「觸發條件」和「執行內容」做分類,並且比較了 bot 指令框架與基本的 client 寫法之間的相同與相異之處。
當功能完善之後,就會開始遇到錯誤處理、程式碼管理等比較進階的需求,在錯誤處理的部分,介紹了如何設定 Log,以及如何捕捉到特定狀況下的錯誤。程式碼管理的部分則是教大家怎麼去拆分程式,把指令模組化,甚至做到 hot-reload 的效果。
當一切都準備就緒後,就需要面臨另一個重要需求:部屬。雖然這與 discord.py 比較沒有關聯,但畢竟實際應用 Discord BOT 時還是需要掌握這部分,所以就還是花了一些篇幅教大家如何部屬。
最後這個階段就是實戰演練了,如果只有看文件和教學,並沒有辦法有多大的進步,因此這邊就以我實際遇到的需求為例,跟大家一起應用前面所學,把各項功能實作出來。
雖然這次已經盡可能的包含多種功能,但還是有一些地方有點可惜,礙於時間考量,就沒有去研究,或許之後有機會的話,再去研究看看:
這次是我第二次參加鐵人賽了。有了上次的經驗,我這次 8 月初就開始規劃這次的主題與內容,不過整個系列的文章脈絡大改了很多次,直到 9 月初要開賽前才真正的定下來。
這段期間,有事沒事就在翻文件、查教學,盡可能去蒐集整理各種值得介紹的功能。這個過程讓我深刻地體會到,我當初寫的 Discord BOT 真的好陽春,但也讓我學習到我還有哪些地方可以改進。在這系列的最後幾天,我覺得我就像在一邊做專題,一邊寫專題進度報告,很多地方都是順著開發思路一路寫下去,導致不知不覺內容就變得太多了,只好拆成好幾天來寫。
原本想說這次應該會輕鬆一些 (畢竟有提早開始規劃),但沒想到 Discord 的功能有這麼多,想要有脈絡地介紹真的不容易。甚至最後部屬的時候才發現 Replit 已經改版了,才只好匆匆忙忙地臨時調整文章內容。
雖然寫文章這段期間壓力真的很大,但也收穫了很多,最後也有順利完賽。接下來,我應該會再把 Discord BOT 弄得更完善一些,期待我的 Discord BOT v2.0 能盡早上線!